#include "widget.h"
#include "ui_widget.h"

#include <QDialog>
#include <QLabel>
#include <QPushButton>
#include <QDebug>
#include <QPixmap>

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
    this->setWindowIcon(QIcon(":/new/prefix1/images/2.jpg"));

    // 使用 label 来显示图片
    QLabel* pic = new QLabel(this);
    pic->move(60, 180);
    pic->resize(120, 120);
    pic->setFrameShape(QFrame::Box);
    pic->setPixmap(QPixmap(":/new/prefix1/images/1.gif"));
    pic->setScaledContents(true); // 让图片完全填充label

    // 模态框
    connect(ui->btn1, &QPushButton::clicked, [](){
        // 1) 实例化一个QDialog对象（栈内存）
        QDialog dia;
        dia.resize(300, 200);
        dia.setWindowTitle("模态框");
        dia.setWindowIcon(QIcon(":/new/prefix1/images/4.gif"));

        QLabel* label = new QLabel("label-test", &dia);
        label->move(30, 30);

        QPushButton* btn = new QPushButton("close", &dia);
        btn->move(150, 150);

        connect(btn, &QPushButton::clicked, [](){
            qDebug() << "close...";
        });


        // 2) 调用 exec 方法，显示模态框（阻塞）
        dia.exec();
        qDebug() << "123123";
    });

    // 非模态框
    connect(ui->btn2, &QPushButton::clicked, [](){
        // 1) 实例化 Qdialog对象（堆内存）
        QDialog* dia = new QDialog;
        dia->resize(300, 400);
        dia->setWindowTitle("非模态框");
        dia->setWindowIcon(QIcon(":/new/prefix1/images/5.jpg"));

        QLabel *l = new QLabel("哈哈哈", dia);
        l->move(20, 20);

        dia->setAttribute(Qt::WA_DeleteOnClose); // 关闭窗口时释放资源

        // 2) 调用show方法将非模态框弹出
        dia->show();

    });
}

Widget::~Widget()
{
    delete ui;
}
